﻿using System;
using System.Globalization;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var test = new TimeChimeTest();
            test.StartTest();

            // 保持程序运行
            Console.WriteLine("程序正在运行中...\n");
            while (true)
            {
                // 每10秒显示一次提示信息
                Thread.Sleep(10000);
                Console.WriteLine("程序仍在运行中... 按 Ctrl+C 停止测试");
            }
        }
        static void Main3333()
        {
            Console.WriteLine("选择要运行的测试:");
            Console.WriteLine("1. 农历计算测试");
            Console.WriteLine("2. 定时报时功能测试");
            Console.Write("请输入选项 (1 或 2): ");
            
            var input = Console.ReadLine();
            
            if (input == "2")
            {
                // 运行定时报时测试
                RunTimeChimeTest();
            }
            else
            {
                // 运行农历计算测试
                RunCalendarTest();
            }
        }
        
        static void RunCalendarTest()
        {
            Console.WriteLine("CalendarHelper 测试");
            Console.WriteLine("====================");
            
            CalendarHelper cCalendar = new CalendarHelper();
            
            // 测试当前日期
            string strDateInfoNow = cCalendar.GetDateTidyInfo(DateTime.Now).Fullinfo;
            Console.WriteLine($"当前日期: {strDateInfoNow}");
            
            // 测试特定日期
            var testDates = new DateTime[]
            {
                new DateTime(2024, 2, 10), // 春节
                new DateTime(2024, 1, 1),  // 元旦
                new DateTime(2024, 6, 15), // 夏季某日
                new DateTime(2024, 12, 25), // 圣诞节
                new DateTime(2025, 10, 1)  // 国庆节
            };
            
            Console.WriteLine("\n特定日期测试:");
            Console.WriteLine("============");
            foreach (var date in testDates)
            {
                var info = cCalendar.GetDateTidyInfo(date);
                Console.WriteLine($"{date:yyyy年MM月dd日}: {info.Fullinfo}");
            }
            
            // 测试农历日期字符串获取
            Console.WriteLine("\n农历日期字符串测试:");
            Console.WriteLine("==================");
            foreach (var date in testDates)
            {
                var lunarString = cCalendar.GetDateTidyInfo(date);
                Console.WriteLine($"{date:yyyy年MM月dd日}: {lunarString}");
            }
            
            Console.WriteLine("\n按任意键退出...");
            Console.ReadKey();
        }
        
        static void RunTimeChimeTest()
        {
            Console.WriteLine("定时报时功能测试");
            Console.WriteLine("================");
            Console.WriteLine("此测试将模拟每秒检查时间，验证整点报时功能");
            Console.WriteLine("测试将持续运行，按 Ctrl+C 停止测试\n");
            
            var test = new TimeChimeTest();
            test.StartTest();
            
            // 保持程序运行
            Console.WriteLine("程序正在运行中...\n");
            try
            {
                while (true)
                {
                    // 每10秒显示一次提示信息
                    System.Threading.Thread.Sleep(10000);
                    Console.WriteLine("程序仍在运行中... 按 Ctrl+C 停止测试");
                }
            }
            catch (Exception)
            {
                // 忽略中断异常
            }
            finally
            {
                // 程序退出时停止测试
                Console.WriteLine("\n程序退出");
            }
        }
        
        static void Main1111(string[] args)
        {
            LunarCalendarDemo.Demo();
            Console.WriteLine("Hello, World!");
        }
    }
}